
// Boost Includes ==============================================================
#include <boost/python.hpp>
#include <boost/cstdint.hpp>

// Includes ====================================================================
#include <OpenSG/OSGSimpleStatisticsForeground.h>
#include <OpenSG/OSGSimpleStatisticsForegroundBase.h>
#include <OpenSG/OSGViewport.h>
#include <OpenSG/OSGDrawAction.h>
#include <OsgPtrHelpers.h>

// Using =======================================================================
using namespace boost::python;

// Declarations ================================================================
namespace  {

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_SimpleStatisticsForeground_dump_overloads_0_2, dump, 0, 2)

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_SimpleStatisticsForeground_addElement_overloads_1_2, addElement, 1, 2)


}// namespace 


// Module ======================================================================
void Export_src_pyste_gen_SimpleStatisticsForeground()
{
    scope* osg_SimpleStatisticsForegroundBase_scope = new scope(
    class_< osg::SimpleStatisticsForegroundBase, bases< osg::StatisticsForeground > , boost::noncopyable >("SimpleStatisticsForegroundBase", no_init)
//        .def_readonly("FormatsFieldMask", &osg::SimpleStatisticsForegroundBase::FormatsFieldMask)
//        .def_readonly("SizeFieldMask", &osg::SimpleStatisticsForegroundBase::SizeFieldMask)
//        .def_readonly("ColorFieldMask", &osg::SimpleStatisticsForegroundBase::ColorFieldMask)
//        .def_readonly("MTInfluenceMask", &osg::SimpleStatisticsForegroundBase::MTInfluenceMask)
        .def("getClassType", &osg::SimpleStatisticsForegroundBase::getClassType, return_internal_reference< 1 >())
        .def("getClassTypeId", &osg::SimpleStatisticsForegroundBase::getClassTypeId)
        .def("getType", (osg::FieldContainerType& (osg::SimpleStatisticsForegroundBase::*)() )&osg::SimpleStatisticsForegroundBase::getType, return_internal_reference< 1 >())
        .def("getType", (const osg::FieldContainerType& (osg::SimpleStatisticsForegroundBase::*)() const)&osg::SimpleStatisticsForegroundBase::getType, return_internal_reference< 1 >())
        .def("getContainerSize", &osg::SimpleStatisticsForegroundBase::getContainerSize)
        //.def("getSize", (osg::Real32& (osg::SimpleStatisticsForegroundBase::*)() )&osg::SimpleStatisticsForegroundBase::getSize, return_value_policy< copy_const_reference >())
        .def("getSize", (const osg::Real32& (osg::SimpleStatisticsForegroundBase::*)() const)&osg::SimpleStatisticsForegroundBase::getSize, return_value_policy< copy_const_reference >())
        //.def("getColor", (osg::Color4f& (osg::SimpleStatisticsForegroundBase::*)() )&osg::SimpleStatisticsForegroundBase::getColor, return_value_policy< copy_const_reference >())
        .def("getColor", (const osg::Color4f& (osg::SimpleStatisticsForegroundBase::*)() const)&osg::SimpleStatisticsForegroundBase::getColor, return_value_policy< copy_const_reference >())
        .def("getFormats", (std::string& (osg::SimpleStatisticsForegroundBase::*)(const osg::UInt32) )&osg::SimpleStatisticsForegroundBase::getFormats, return_value_policy< copy_non_const_reference >())
        //.def("getFormats", (osg::MFString& (osg::SimpleStatisticsForegroundBase::*)() )&osg::SimpleStatisticsForegroundBase::getFormats, return_value_policy< copy_const_reference >())
        .def("getFormats", (const osg::MFString& (osg::SimpleStatisticsForegroundBase::*)() const)&osg::SimpleStatisticsForegroundBase::getFormats, return_value_policy< copy_const_reference >())
        .def("setSize", &osg::SimpleStatisticsForegroundBase::setSize)
        .def("setColor", &osg::SimpleStatisticsForegroundBase::setColor)
        .def("getBinSize", &osg::SimpleStatisticsForegroundBase::getBinSize)
        .def("copyToBin", &osg::SimpleStatisticsForegroundBase::copyToBin)
        .def("copyFromBin", &osg::SimpleStatisticsForegroundBase::copyFromBin)
        .def("create", &osg::SimpleStatisticsForegroundBase::create)
        .def("createEmpty", &osg::SimpleStatisticsForegroundBase::createEmpty)
        .def("shallowCopy", &osg::SimpleStatisticsForegroundBase::shallowCopy)
        .staticmethod("getClassType")
        .staticmethod("create")
        .staticmethod("createEmpty")
        .staticmethod("getClassTypeId")
    );

    scope().attr("ColorFieldId") = (int)osg::SimpleStatisticsForegroundBase::ColorFieldId;
    scope().attr("SizeFieldId") = (int)osg::SimpleStatisticsForegroundBase::SizeFieldId;
    scope().attr("FormatsFieldId") = (int)osg::SimpleStatisticsForegroundBase::FormatsFieldId;
    scope().attr("NextFieldId") = (int)osg::SimpleStatisticsForegroundBase::NextFieldId;

    delete osg_SimpleStatisticsForegroundBase_scope;

    class_< osg::SimpleStatisticsForeground, bases< osg::SimpleStatisticsForegroundBase > , boost::noncopyable, osg::SimpleStatisticsForegroundRefPtr >("SimpleStatisticsForeground", no_init)
        .def("changed", &osg::SimpleStatisticsForeground::changed)
        .def("dump", &osg::SimpleStatisticsForeground::dump, osg_SimpleStatisticsForeground_dump_overloads_0_2())
        .def("draw", &osg::SimpleStatisticsForeground::draw)
        .def("addElement", (void (osg::SimpleStatisticsForeground::*)(osg::StatElemDescBase&, const char*) )&osg::SimpleStatisticsForeground::addElement, osg_SimpleStatisticsForeground_addElement_overloads_1_2())
        .def("addElement", (void (osg::SimpleStatisticsForeground::*)(osg::Int32, const char*) )&osg::SimpleStatisticsForeground::addElement, osg_SimpleStatisticsForeground_addElement_overloads_1_2())
    ;


    register_ptr_to_python<osg::SimpleStatisticsForegroundPtr>();
    implicitly_convertible<osg::SimpleStatisticsForegroundRefPtr, osg::SimpleStatisticsForegroundPtr>();
    implicitly_convertible<osg::SimpleStatisticsForegroundPtr, osg::StatisticsForegroundPtr>();
    
    def("RefPtr", &pyopensg::ToRefPtr<osg::SimpleStatisticsForegroundPtr>);
    def("FCPtr", &pyopensg::ToFcPtr<osg::SimpleStatisticsForegroundPtr>);
}

